1. Field of the Invention
This invention relates to a communication system architecture and more particularly to a packet processor employed within a communication network. The packet processor is variably configurable to handle different protocols forwarded over the network.
2. Description of the Relevant Art
A recent trend in the modern workplace is for individuals to work at remote sites and periodically connect to an office or central data site. Those individuals are often termed "telecommuters", and are defined as workers or employees who work from a remote site within their home, that site being connected to the central, corporate office. Another recent trend in the workplace is that of remote small offices or branch offices, wherein a group of workers or employees are situated in a location remote from the corporate headquarters. Those individuals are also electronically connected to the corporate office/headquarters. This movement away from the corporate or central site, and the benefit gained by avoiding a physical commute appears to be a trend which is here to stay. In all likelihood, this trend will continue given the transient nature by which most modern workers operate.
Remotely situated workers require transparent connectivity not only to the corporate office but also to the office's local area network (LAN). As corporations move away from mainframe based systems to personal computer (PC) systems linked together by LANs, the options for remote connectivity have improved. In general, PCs and LANs facilitate remote access to the computing resources of the corporate office or corporate headquarters. Remote connectivity is also made possible with the arrival of affordable, reliable, digital telecommunication services and inexpensive network hardware.
Currently there is a wide variety of digital telecommunications services available. Those services must somehow be linked into an infrastructure in order for PCs to communicate with one another and for a PC to communicate with a remote LAN. A computer communication network is therefore defined as either a wide-area network (WAN) or a local area network (LAN) connected together by possibly numerous digital telecommunications services. The collection of applications hosted on different PCs and the interconnection of those PCs presents a challenging task. For example, there are numerous applications which can be implemented on hosts manufactured by possibly different vendors, each of which may be managed by a variety of operating systems. Networking capability is provided by software systems that implement standardized interfaces specifically designed for the exchange of information among heterogeneous PCs.
In an effort to bring compatibility to the various operating systems and PC architectures, the international standards organization (ISO) developed an open systems interconnection (OSI) reference model. The OSI reference model defines various layers ranging from the lower physical layer (network cables and host adapter hardware) to the upper application layer (software needed to send communication messages over the network). Between the physical layer and application layer are various other layers used to format (i.e., organize) various dialogues or "protocols" between a source PC and destination PC. More specifically, a data link layer adjacent the physical layer is used to establish activation, maintenance and deactivation of data link connections, character and frame synchronization, and grouping of bits into characters and frames. The data link layer is thereby used to establish flow control of frames of communication messages sent between PCs. A network layer established at a layer above the data link layer provides common software interface and is transparent to differences in the underlying hardware of various PCs interconnected to the network. Software of higher layers can run on any lower layer hardware due to the compatibility afforded by the network layer.
The data link layer and the network layer, in combination, defines the basic protocol used in the communication network. A communication message transmitted under a given protocol is divided into a number of sub-messages called protocol data units or "packets." Packets are established to contain all the information required for the receiving communication entity (i.e., PC) to provide the called upon service. Thus, a packet is a block of data that is strictly formatted to include both the communication sub-message as well as control data needed to effectuate connection between a transmitting and receiving entity. All communication messages are therefore divided into one or more packets, the length of which is carefully controlled. Dividing communication messages into multiple packets enables the network to be shared without interference and interminable waits for access.
Service primitives associated with the data link layer include both connection-mode primitives and connectionless-mode primitives. For connection-mode primitives, a connection must be established between two PCs within the network before they can exchange a packet. However, for connectionless-mode communications, connection is established by placing addressing information within a "field" associated with each packet. Placing addressing information, and attributing that information to a particular packet is often referred to as datagram service. Datagram networks have the advantage of not having to establish connections before communication takes place. However, they have the disadvantage in that every packet must contain a field. The field is attributed to each packet, for example, as a header or a footer to that packet. The field defines destination and source identification as well as error-correction information. Accordingly, the field contains a plurality of bits needed to perform those functions.
A field associated with a particular packet is dependent upon the protocol used in forwarding that packet. Obviously, if the communication protocol changes, the field must also change, otherwise the destination PC will not recognize that which the source PC has transmitted. There are numerous protocols currently being used in WANs and LANs to effectuate communication among PCs. A skilled artisan in modern communication systems generally recognizes all these various protocols. For example, protocols which are currently popular, but certainly not inclusive of all protocols, include TCP/IP, Ethernet, frame relay, DDS, ATM, X.25 and Sonet. Communication protocols allow use of, and are designed to recognize, various topologies (i.e., linear, ring and star topologies), various hierarchies (i.e., client/server, peer-to-peer, Ethernet, AppleTalk, token ring, ARCnet and FDDI).
In many instances it is necessary to interface one protocol to another protocol and possibly to change protocols along various communication links. For example, there may be one protocol used between a PC and a switching node, while another protocol is used between switching nodes. More specifically, one protocol may be used to transmit packets along an access line between PCs or between a PC and a switching node. Further, another protocol may be used to transmit packets along a trunk.
It would be beneficial to derive a communication system which can be adaptive to various protocols. For example, the desired communication system could recognize fields of one protocol during one instance and then be re-configured to recognize fields of another protocol during another instance. Re-configuration is a problem which must be solved in order to allow a packet processor to send and receive different protocols. Essentially, the desired re-configurable packet processor must be one associated with network cards associated with a LAN as well as a router which can link a LAN to another PC possibly via the public switched telephone network (PSTN).